#ifndef __EVENTNEEDGENERIKREMOVE_HPP__
#define	__EVENTNEEDGENERIKREMOVE_HPP__

#include "../EventBase.hpp"

namespace Event
{
    class EventNeedGenerikRemove :
    public EventBase
    {
    protected:
        
		EventNeedGenerikRemove() :
			EventBase((void*)NULL,EVENT_NEED_GENERIK_REMOVE, 0, 0),
			m_type(0),
			m_idToRemove(0)
        {
        }
		/**
         * @fn       EventNeedGenerikRemove(unsigned long _idToRemove, float _timeToWait = 0, int _nbFires = 0))
         * @brief    Contructor
         * @param    _timeToWait     time we have to wait before firing the event
         * @param    _nbFires        number of time we have to fire the event
         */
        /*EventNeedGenerikRemove(int _type, unsigned long _idToRemove, float _timeToWait = 0, int _nbFires = 0) :
        EventBase((void*)NULL,EVENT_NEED_GENERIK_REMOVE, _timeToWait, _nbFires),
        m_type(_type),
        m_idToRemove(_idToRemove)
        {
        }*/
    public:
        /**
         * @fn       EventNeedGenerikRemove(void* _sender, unsigned long _idToRemove, float _timeToWait = 0, int _nbFires = 0))
         * @brief    Contructor
         * @param    _timeToWait     time we have to wait before firing the event
         * @param    _nbFires        number of time we have to fire the event
         */
        EventNeedGenerikRemove(void* _sender, int _type, unsigned long _idToRemove, float _timeToWait = 0, int _nbFires = 0) :
			EventBase(_sender, EVENT_NEED_GENERIK_REMOVE, _timeToWait, _nbFires),
			m_type(_type),
			m_idToRemove(_idToRemove)
        {
        }

        /**
         * @fn       EventNeedGenerikRemove(const EventNeedGenerikRemove& orig)
         * @brief    Copy Contructor
         * @param    orig       Copy of the event we have to do
         */
        EventNeedGenerikRemove(const EventNeedGenerikRemove& orig) :
			EventBase(orig),
			m_type(orig.m_type),
			m_idToRemove(orig.m_idToRemove)
        {
        }

        /**
         * @fn       getType()
         * @brief    Getter on the event
         * @return   event of the keyboard
         */
		int getType()
        {
            return m_type;
        }


        /**
         * @fn       getIdToRemove()
         * @brief    Getter on the event
         * @return   event of the keyboard
         */
		unsigned long getIdToRemove()
        {
            return m_idToRemove;
        }

        /**
         * @fn       ~EventNeedGenerikRemove()
         * @brief    Virtual Destructor
         */
        virtual ~EventNeedGenerikRemove()
        {
        }
    protected:
        int     m_type;
        unsigned long m_idToRemove;

    };

} //  namespace Event


#endif	/* __EVENTNEEDGENERIKREMOVE_HPP__ */

